package lq.lq2019;

/*  不同子串
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串。
例如，字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab，一共 7 个。 注意在计算时，只算本质不同的串的个数。
请问，字符串0100110001010001 有多少个不同的非空子串？

 */

/*
思路  本质不同串  set去重
      String.substring()方法求子串
 */

import java.util.HashSet;
import java.util.Set;

public class Code02_DifferentSubstring {

    public static void main(String[] args) {
        String str = "0100110001010001";
        Set<String> sub = new HashSet<>();
        for (int step = 0; step <= str.length() - 1; step++){
            for (int beginIndex = 0, endIndex = step + 1; endIndex <= str.length();beginIndex++,endIndex++){
                sub.add(str.substring(beginIndex,endIndex));
            }
        }
        System.out.println(sub.size());
    }

}
